package com.start.workflow.core.event;

import com.start.workflow.model.StartProcessModel;

/**
 * 流程模型事件
 */
public interface StartWorkFlowModelEvent extends StartWorkFLowEvent {


    /**
     * 创建流程模型前
     *
     * @param model 流程模型配置
     */
    void beforeCreateModel(StartProcessModel model);

    /**
     * 创建流程模型后
     *
     * @param model 流程模型配置
     */
    void afterCreateModel(StartProcessModel model);

    /**
     * 修改流程模型前
     *
     * @param model 模型配置
     */
    void beforeUpdateModel(StartProcessModel model);

    /**
     * 修改流程模型后
     *
     * @param model 模型配置
     */
    void afterUpdateModel(StartProcessModel model);

    /**
     * 删除流程模型前
     *
     * @param model 流程模型
     */
    void beforeDeleteModel(StartProcessModel model);

    /**
     * 删除流程模型后
     *
     * @param model 模型id
     */
    void afterDeleteModel(StartProcessModel model);

    /**
     * 发布流程模型前
     *
     * @param model 模型id
     */
    void beforeDeploymentModel(StartProcessModel model);

    /**
     * 发布流程模型后
     *
     * @param model 模型id
     */
    void afterDeploymentModel(StartProcessModel model);
}
